import { sendGetJsonRequest } from '@/utils/requestEx';

/**
 * 查询 dictName 对应的字典项
 * @param {*} data 参数
 * @returns dictName 对应的字典项
 */
export async function querySysDict(data: any) {
  // const { dictName } = data;
  // // 判断会话缓存中是否有缓存
  // const dictListStr = sessionStorage.getItem(dictName);
  // if (dictListStr) {
  //   // 会话缓存中存在，则取缓存，不再去服务端通讯
  //   console.info(`缓存中获取数据 ${dictName}`);
  //   const result = JSON.parse(dictListStr);
  //   return Promise.resolve(result);
  // }
  // const endPointURI = `/dev/sysdict/params/${dictName}`;
  // const res = sendGetJsonRequest(endPointURI, data);
  // res.then(data => {
  //   const resStr = JSON.stringify(data);
  //   sessionStorage.setItem(dictName, resStr);
  // });
  // return res;
  const { dictName } = data;
  const endPointURI = '/dev/sysdict/params';
  return loadingCache(dictName, endPointURI);
}

export const loadingCache = async (cacheName: string, url: string) => {
  // 判断会话缓存中是否有缓存
  const cacheValue = sessionStorage.getItem(cacheName);
  if (cacheValue) {
    // 会话缓存中存在，则取缓存，不再去服务端通讯
    console.info(`缓存中获取 ${cacheName} 对应的数据`, cacheValue);
    const result = JSON.parse(cacheValue);
    return Promise.resolve(result);
  }
  console.info(`缓存中无 ${cacheName} 对应的数据，将从服务器获取`);
  const endPointURI = `${url}/${cacheName}`;
  const res = sendGetJsonRequest(endPointURI, {});
  res.then(data => {
    const resStr = JSON.stringify(data);
    sessionStorage.setItem(cacheName, resStr);
  });
  return res;
}